#include <FastLED.h>

#define LED_PIN     15     // WS2812B灯带数据线连接到Arduino的6号引脚
#define NUM_LEDS    60    // 灯带上LED的数量
#define LED_TYPE    WS2812B
#define COLOR_ORDER GRB

#define BULLET_SIZE 5     // 子弹的长度
#define BULLET_SPEED 60    // 子弹的移动速度，数值越小速度越快

CRGB leds[NUM_LEDS];

void setup() {
  FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip);
  FastLED.setBrightness(50);  // 设置亮度，范围为0-255
  randomSeed(analogRead(A0)); // 初始化随机数生成器

  //直接打开led灯
//  fill_solid(leds, NUM_LEDS, CRGB::White);
//  FastLED.show();
}

void loop() {
  //随机颜色将灯全部点亮
  //  fill_solid(leds, NUM_LEDS, CHSV(random(256), 255, 255));
//  FastLED.show();
//  delay(500);


  
  static uint8_t startPos = 0;  // 子弹起始位置
  // 清空LED
  fill_solid(leds, NUM_LEDS, CRGB::Black);
  // 绘制子弹
  for (int i = 0; i < BULLET_SIZE; i++) {
    int pos = startPos + i;
    if (pos < NUM_LEDS) {
      // 为每个子弹生成随机颜色
      leds[pos] = CHSV(random(256), 255, 255);
    }
  }

  // 更新子弹位置
  startPos = (startPos + 1) % NUM_LEDS;

  // 显示效果
  FastLED.show();

  // 延迟一段时间以控制子弹的移动速度
  delay(BULLET_SPEED);
}
